package lv.clientedisqueria.model.tema;

import java.util.ArrayList;
import java.util.List;

import lv.clientedisqueria.model.DisqueriaTablaModelo;
import lv.clientedisqueria.model.Modelo;
import lv.mensajeriadisqueria.dto.TemaDto;
import lv.mensajeriadisqueria.idomain.ITema;

/**
 *  
 */
public class TemaModel extends Modelo<ITema> {

	private final static String PROPERTY_CHANGE_CAMBIAR_TEMA = "cambiarTema";
	
	private final TemaTablaModel temaTablaModel;

	public TemaModel() {
		temaTablaModel = new TemaTablaModel(this);
	}

	@Override
	public List<ITema> buscarTodos() {
		// TODO aca hay que buscar a la base a todos los usuario
		 List<ITema> temas = new ArrayList<ITema>();
		 	TemaDto temaDto = new TemaDto("Vamos a Bailar", "hfskjashfkjhsakfj sjahfksjahfkjsaf sjahfkjshafkjs jsahfkjshafk");
		 	temaDto.setIdTema(1);
			temas.add(temaDto);
			TemaDto temaDto2 = new TemaDto("Aguante la cumbia", "hfskjashfkjhsakfj sjahfksjahfkjsaf sjahfkjshafkjs jsahfkjshafk");
			temaDto2.setIdTema(2);
			temas.add(temaDto2);
		return temas;
	}

	@Override
	public String getPropertyChangeCambio() {
		return PROPERTY_CHANGE_CAMBIAR_TEMA;
	}

	@Override
	public void borrar() {
		// TODO aca hay que llamar al clienteserver para que haga el pedido
		temaTablaModel.remover();
		notificar(Modelo.BORRAR);
	}

	@Override
	public void guardar(ITema entity) {
		// TODO Aca hay que llamar al server para guardar el objeto.
		temaTablaModel.adherirOModificar(entity);
		notificar(Modelo.GUARDADO);
	}

	@Override
	public void insertar() {
		temaTablaModel.adherirOModificar(new TemaDto());
		notificar(Modelo.INSERTAR);
	}

	public DisqueriaTablaModelo<ITema> getTablaModel() {
		return temaTablaModel;
	}

	public void adherirVersiones() {
		
	}
}